Since the advent of the computer and software age, software developers have attempted to provide helpful functionality to software users that is contextual in nature. For example, software has been developed for detecting that a user is entering a date into a computer-generated document as the user is typing the date. Before the user can complete the date, the software application popsup today's date to the user and offers to automatically complete the date for the user. Other software has been developed for offering users helpful actions in response to certain data entered by the user. For example, if the user's word processor application recognizes that the user has entered a date, the user may be offered an action that will launch the user's electronic calendar to allow the user to check appointments or to verify information in her calendar for the entered date.
It would be helpful to users to provide them with actions applicable to names entered in computer-generated documents such as contacts documents, word processing documents, spreadsheet documents, slide presentation documents, calendaring documents, and the like. Unfortunately, names are very difficult to recognize because often names are not distinguishable from any other word in a sentence. And, often names have particular meaning in a relation to the language context in which they are entered. Because of the great diversity of name origins, names may be typed into a document written in one language, for example English, but the name may have its origins in a separate language, for example Chinese.
In addition, modern desktop operating systems are provided with various localization features for improving usability for users throughout the world. For instance, some desktop operating systems provide support for multiple user interface languages. Through this type of support for multiple user interface languages, users can configure the user interface of the operating system, for example, a keyboard, to operate in any of a number of languages supported by the host operating system. Additionally, many application programs also support the use of multiple languages for international users. For example, a word processing program or spreadsheet application program may allow a user to create documents in English, Thai, Vietnamese, or other languages installed in the operating system and enabled by the user. Documents may also be created that contain text or other information in a combination of languages. In fact, international users of such applications frequently create documents that include text in more than one language. Different languages often have vastly different grammatical rules for presenting names. For example, some languages commonly place certain titles before names. Some languages commonly place province or location designation after names.
Accordingly, there is a need for a method and system for recognizing names entered into computer-generated documents according to a variety of different languages and language grammatical rules and for providing helpful actions to a user associated with recognized names. It is with respect to these and other considerations that the present invention has been made.